//auto gen by paipai.java.augogen ver 3.0.0
//author skyzhuang
//source idl: com.erp.gis.idl.ShipTypeAreaLocusRowSyncReq.java


#ifndef ERP_GIS_PO_CSHIPTYPEAREALOCUSPO_BY_AUTOGEN_V5_H
#define ERP_GIS_PO_CSHIPTYPEAREALOCUSPO_BY_AUTOGEN_V5_H


#include "app_platform/intf_serializable.h"
#include <string>
#include <iostream>


namespace erp
{
namespace gis
{
namespace po
{


class CShipTypeAreaLocusPo : public ISerializable
{
	public:
		std::string m_sLastErrMsg;///<错误信息
		/**
		 *  版本号 
		 *
		 * 版本 >= 0
		 */
		uint16_t wVersion;

		/**
		 * 版本 >= 0
		 */
		uint8_t cVersion_u;

		/**
		 * 记录序号，ERP：gis系统同步数据时使用，区分不同记录
		 *
		 * 版本 >= 0
		 */
		uint32_t dwRecordSysNo;

		/**
		 * 版本 >= 0
		 */
		uint8_t cRecordSysNo_u;

		/**
		 * 配送方式 
		 *
		 * 版本 >= 0
		 */
		uint32_t dwShipType;

		/**
		 * 版本 >= 0
		 */
		uint8_t cShipType_u;

		/**
		 * 分站号 
		 *
		 * 版本 >= 0
		 */
		uint32_t dwBranchSysNo;

		/**
		 * 版本 >= 0
		 */
		uint8_t cBranchSysNo_u;

		/**
		 * 配送轨迹所属的国标城市地域ID
		 *
		 * 版本 >= 0
		 */
		uint32_t dwShipTypeLocusGbAreaid;

		/**
		 * 版本 >= 0
		 */
		uint8_t cShipTypeLocusGbAreaid_u;

		/**
		 * 配送方式覆盖轨迹，轨迹数据组织形式如：x1,y1,x2,y2,x3,y3 
		 *
		 * 版本 >= 0
		 */
		std::string strShipTypeCoverLocus;

		/**
		 * 版本 >= 0
		 */
		uint8_t cShipTypeCoverLocus_u;

		/**
		 *  状态，0：有效，1：无效 
		 *
		 * 版本 >= 0
		 */
		uint32_t dwStatus;

		/**
		 * 版本 >= 0
		 */
		uint8_t cStatus_u;

		/**
		 *  创建时间
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwCreateTime;

		/**
		 * 版本 >= 0
		 */
		uint8_t cCreateTime_u;

		/**
		 *  最近修改时间
		 *
		 * 版本 >= 0
		 */
		uint64_t ddwLastModifyTime;

		/**
		 * 版本 >= 0
		 */
		uint8_t cLastModifyTime_u;

		/**
		 *  预留扩展字段
		 *
		 * 版本 >= 0
		 */
		std::string strReserve;

		/**
		 * 版本 >= 0
		 */
		uint8_t cReserve_u;




	public:
		CShipTypeAreaLocusPo():
		wVersion(0),
		cVersion_u(0),
		dwRecordSysNo(0),
		cRecordSysNo_u(0),
		dwShipType(0),
		cShipType_u(0),
		dwBranchSysNo(0),
		cBranchSysNo_u(0),
		dwShipTypeLocusGbAreaid(0),
		cShipTypeLocusGbAreaid_u(0),
		cShipTypeCoverLocus_u(0),
		dwStatus(0),
		cStatus_u(0),
		ddwCreateTime(0),
		cCreateTime_u(0),
		ddwLastModifyTime(0),
		cLastModifyTime_u(0),
		cReserve_u(0) {}
		CShipTypeAreaLocusPo& operator = (const CShipTypeAreaLocusPo& obj){

			this->wVersion = obj.wVersion;
			this->cVersion_u = obj.cVersion_u;
			this->dwRecordSysNo = obj.dwRecordSysNo;
			this->cRecordSysNo_u = obj.cRecordSysNo_u;
			this->dwShipType = obj.dwShipType;
			this->cShipType_u = obj.cShipType_u;
			this->dwBranchSysNo = obj.dwBranchSysNo;
			this->cBranchSysNo_u = obj.cBranchSysNo_u;
			this->dwShipTypeLocusGbAreaid = obj.dwShipTypeLocusGbAreaid;
			this->cShipTypeLocusGbAreaid_u = obj.cShipTypeLocusGbAreaid_u;
			this->strShipTypeCoverLocus = obj.strShipTypeCoverLocus;
			this->cShipTypeCoverLocus_u = obj.cShipTypeCoverLocus_u;
			this->dwStatus = obj.dwStatus;
			this->cStatus_u = obj.cStatus_u;
			this->ddwCreateTime = obj.ddwCreateTime;
			this->cCreateTime_u = obj.cCreateTime_u;
			this->ddwLastModifyTime = obj.ddwLastModifyTime;
			this->cLastModifyTime_u = obj.cLastModifyTime_u;
			this->strReserve = obj.strReserve;
			this->cReserve_u = obj.cReserve_u;
			return *this;
		}

	public:


		/**
		 * 是否设置 版本号 了
		 * 
		 * @param uint16_t:wVersion
		 *  
		 * 
		 */
		 bool  IsVersionSet() const{
				 return  cVersion_u != 0;
		}


		/**
		 * 获取uflag 版本号 了
		 * 
		 * @param uint16_t:wVersion
		 *  
		 * 
		 */
		 const uint8_t   GetVersionUFlag() const{
				 return  cVersion_u;
		}


		/**
		 * 设置 版本号 
		 * 
		 * @param uint16_t:wVersion
		 *  
		 * 
		 */
		 void  SetVersion( const uint16_t& sVal, uint8_t cUFlag=1){
				wVersion = sVal;
				cVersion_u = cUFlag;
		}


		/**
		 * 获取 版本号 
		 * 
		 * @return wVersion value 类型为:uint16_t
		 * 
		 */
		 const uint16_t&  GetVersion() const {
				return wVersion;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cVersion_u
		 *  
		 * 
		 */
		 void  SetVersion_u( const uint8_t& sVal){
				cVersion_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cVersion_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetVersion_u() const {
				return cVersion_u;
		}


		/**
		 * 是否设置记录序号，ERP：gis系统同步数据时使用，区分不同记录了
		 * 
		 * @param uint32_t:dwRecordSysNo
		 *  
		 * 
		 */
		 bool  IsRecordSysNoSet() const{
				 return  cRecordSysNo_u != 0;
		}


		/**
		 * 获取uflag记录序号，ERP：gis系统同步数据时使用，区分不同记录了
		 * 
		 * @param uint32_t:dwRecordSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetRecordSysNoUFlag() const{
				 return  cRecordSysNo_u;
		}


		/**
		 * 设置记录序号，ERP：gis系统同步数据时使用，区分不同记录
		 * 
		 * @param uint32_t:dwRecordSysNo
		 *  
		 * 
		 */
		 void  SetRecordSysNo( const uint32_t& sVal, uint8_t cUFlag=1){
				dwRecordSysNo = sVal;
				cRecordSysNo_u = cUFlag;
		}


		/**
		 * 获取记录序号，ERP：gis系统同步数据时使用，区分不同记录
		 * 
		 * @return dwRecordSysNo value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetRecordSysNo() const {
				return dwRecordSysNo;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cRecordSysNo_u
		 *  
		 * 
		 */
		 void  SetRecordSysNo_u( const uint8_t& sVal){
				cRecordSysNo_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cRecordSysNo_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetRecordSysNo_u() const {
				return cRecordSysNo_u;
		}


		/**
		 * 是否设置配送方式 了
		 * 
		 * @param uint32_t:dwShipType
		 *  
		 * 
		 */
		 bool  IsShipTypeSet() const{
				 return  cShipType_u != 0;
		}


		/**
		 * 获取uflag配送方式 了
		 * 
		 * @param uint32_t:dwShipType
		 *  
		 * 
		 */
		 const uint8_t   GetShipTypeUFlag() const{
				 return  cShipType_u;
		}


		/**
		 * 设置配送方式 
		 * 
		 * @param uint32_t:dwShipType
		 *  
		 * 
		 */
		 void  SetShipType( const uint32_t& sVal, uint8_t cUFlag=1){
				dwShipType = sVal;
				cShipType_u = cUFlag;
		}


		/**
		 * 获取配送方式 
		 * 
		 * @return dwShipType value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetShipType() const {
				return dwShipType;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cShipType_u
		 *  
		 * 
		 */
		 void  SetShipType_u( const uint8_t& sVal){
				cShipType_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cShipType_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetShipType_u() const {
				return cShipType_u;
		}


		/**
		 * 是否设置分站号 了
		 * 
		 * @param uint32_t:dwBranchSysNo
		 *  
		 * 
		 */
		 bool  IsBranchSysNoSet() const{
				 return  cBranchSysNo_u != 0;
		}


		/**
		 * 获取uflag分站号 了
		 * 
		 * @param uint32_t:dwBranchSysNo
		 *  
		 * 
		 */
		 const uint8_t   GetBranchSysNoUFlag() const{
				 return  cBranchSysNo_u;
		}


		/**
		 * 设置分站号 
		 * 
		 * @param uint32_t:dwBranchSysNo
		 *  
		 * 
		 */
		 void  SetBranchSysNo( const uint32_t& sVal, uint8_t cUFlag=1){
				dwBranchSysNo = sVal;
				cBranchSysNo_u = cUFlag;
		}


		/**
		 * 获取分站号 
		 * 
		 * @return dwBranchSysNo value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetBranchSysNo() const {
				return dwBranchSysNo;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cBranchSysNo_u
		 *  
		 * 
		 */
		 void  SetBranchSysNo_u( const uint8_t& sVal){
				cBranchSysNo_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cBranchSysNo_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetBranchSysNo_u() const {
				return cBranchSysNo_u;
		}


		/**
		 * 是否设置配送轨迹所属的国标城市地域ID了
		 * 
		 * @param uint32_t:dwShipTypeLocusGbAreaid
		 *  
		 * 
		 */
		 bool  IsShipTypeLocusGbAreaidSet() const{
				 return  cShipTypeLocusGbAreaid_u != 0;
		}


		/**
		 * 获取uflag配送轨迹所属的国标城市地域ID了
		 * 
		 * @param uint32_t:dwShipTypeLocusGbAreaid
		 *  
		 * 
		 */
		 const uint8_t   GetShipTypeLocusGbAreaidUFlag() const{
				 return  cShipTypeLocusGbAreaid_u;
		}


		/**
		 * 设置配送轨迹所属的国标城市地域ID
		 * 
		 * @param uint32_t:dwShipTypeLocusGbAreaid
		 *  
		 * 
		 */
		 void  SetShipTypeLocusGbAreaid( const uint32_t& sVal, uint8_t cUFlag=1){
				dwShipTypeLocusGbAreaid = sVal;
				cShipTypeLocusGbAreaid_u = cUFlag;
		}


		/**
		 * 获取配送轨迹所属的国标城市地域ID
		 * 
		 * @return dwShipTypeLocusGbAreaid value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetShipTypeLocusGbAreaid() const {
				return dwShipTypeLocusGbAreaid;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cShipTypeLocusGbAreaid_u
		 *  
		 * 
		 */
		 void  SetShipTypeLocusGbAreaid_u( const uint8_t& sVal){
				cShipTypeLocusGbAreaid_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cShipTypeLocusGbAreaid_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetShipTypeLocusGbAreaid_u() const {
				return cShipTypeLocusGbAreaid_u;
		}


		/**
		 * 是否设置配送方式覆盖轨迹，轨迹数据组织形式如：x1,y1,x2,y2,x3,y3 了
		 * 
		 * @param std::string:strShipTypeCoverLocus
		 *  
		 * 
		 */
		 bool  IsShipTypeCoverLocusSet() const{
				 return  cShipTypeCoverLocus_u != 0;
		}


		/**
		 * 获取uflag配送方式覆盖轨迹，轨迹数据组织形式如：x1,y1,x2,y2,x3,y3 了
		 * 
		 * @param std::string:strShipTypeCoverLocus
		 *  
		 * 
		 */
		 const uint8_t   GetShipTypeCoverLocusUFlag() const{
				 return  cShipTypeCoverLocus_u;
		}


		/**
		 * 设置配送方式覆盖轨迹，轨迹数据组织形式如：x1,y1,x2,y2,x3,y3 
		 * 
		 * @param std::string:strShipTypeCoverLocus
		 *  
		 * 
		 */
		 void  SetShipTypeCoverLocus( const std::string& sVal, uint8_t cUFlag=1){
				strShipTypeCoverLocus = sVal;
				cShipTypeCoverLocus_u = cUFlag;
		}


		/**
		 * 获取配送方式覆盖轨迹，轨迹数据组织形式如：x1,y1,x2,y2,x3,y3 
		 * 
		 * @return strShipTypeCoverLocus value 类型为:std::string
		 * 
		 */
		 const std::string&  GetShipTypeCoverLocus() const {
				return strShipTypeCoverLocus;
		}


		/**
		 * 获取配送方式覆盖轨迹，轨迹数据组织形式如：x1,y1,x2,y2,x3,y3 
		 * 
		 * @return strShipTypeCoverLocus value 类型为:std::string
		 * 
		 */
		 std::string&  GetShipTypeCoverLocus() {
				return strShipTypeCoverLocus;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cShipTypeCoverLocus_u
		 *  
		 * 
		 */
		 void  SetShipTypeCoverLocus_u( const uint8_t& sVal){
				cShipTypeCoverLocus_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cShipTypeCoverLocus_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetShipTypeCoverLocus_u() const {
				return cShipTypeCoverLocus_u;
		}


		/**
		 * 是否设置 状态，0：有效，1：无效 了
		 * 
		 * @param uint32_t:dwStatus
		 *  
		 * 
		 */
		 bool  IsStatusSet() const{
				 return  cStatus_u != 0;
		}


		/**
		 * 获取uflag 状态，0：有效，1：无效 了
		 * 
		 * @param uint32_t:dwStatus
		 *  
		 * 
		 */
		 const uint8_t   GetStatusUFlag() const{
				 return  cStatus_u;
		}


		/**
		 * 设置 状态，0：有效，1：无效 
		 * 
		 * @param uint32_t:dwStatus
		 *  
		 * 
		 */
		 void  SetStatus( const uint32_t& sVal, uint8_t cUFlag=1){
				dwStatus = sVal;
				cStatus_u = cUFlag;
		}


		/**
		 * 获取 状态，0：有效，1：无效 
		 * 
		 * @return dwStatus value 类型为:uint32_t
		 * 
		 */
		 const uint32_t&  GetStatus() const {
				return dwStatus;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cStatus_u
		 *  
		 * 
		 */
		 void  SetStatus_u( const uint8_t& sVal){
				cStatus_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cStatus_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetStatus_u() const {
				return cStatus_u;
		}


		/**
		 * 是否设置 创建时间了
		 * 
		 * @param uint64_t:ddwCreateTime
		 *  
		 * 
		 */
		 bool  IsCreateTimeSet() const{
				 return  cCreateTime_u != 0;
		}


		/**
		 * 获取uflag 创建时间了
		 * 
		 * @param uint64_t:ddwCreateTime
		 *  
		 * 
		 */
		 const uint8_t   GetCreateTimeUFlag() const{
				 return  cCreateTime_u;
		}


		/**
		 * 设置 创建时间
		 * 
		 * @param uint64_t:ddwCreateTime
		 *  
		 * 
		 */
		 void  SetCreateTime( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwCreateTime = sVal;
				cCreateTime_u = cUFlag;
		}


		/**
		 * 获取 创建时间
		 * 
		 * @return ddwCreateTime value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetCreateTime() const {
				return ddwCreateTime;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cCreateTime_u
		 *  
		 * 
		 */
		 void  SetCreateTime_u( const uint8_t& sVal){
				cCreateTime_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cCreateTime_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetCreateTime_u() const {
				return cCreateTime_u;
		}


		/**
		 * 是否设置 最近修改时间了
		 * 
		 * @param uint64_t:ddwLastModifyTime
		 *  
		 * 
		 */
		 bool  IsLastModifyTimeSet() const{
				 return  cLastModifyTime_u != 0;
		}


		/**
		 * 获取uflag 最近修改时间了
		 * 
		 * @param uint64_t:ddwLastModifyTime
		 *  
		 * 
		 */
		 const uint8_t   GetLastModifyTimeUFlag() const{
				 return  cLastModifyTime_u;
		}


		/**
		 * 设置 最近修改时间
		 * 
		 * @param uint64_t:ddwLastModifyTime
		 *  
		 * 
		 */
		 void  SetLastModifyTime( const uint64_t& sVal, uint8_t cUFlag=1){
				ddwLastModifyTime = sVal;
				cLastModifyTime_u = cUFlag;
		}


		/**
		 * 获取 最近修改时间
		 * 
		 * @return ddwLastModifyTime value 类型为:uint64_t
		 * 
		 */
		 const uint64_t&  GetLastModifyTime() const {
				return ddwLastModifyTime;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cLastModifyTime_u
		 *  
		 * 
		 */
		 void  SetLastModifyTime_u( const uint8_t& sVal){
				cLastModifyTime_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cLastModifyTime_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetLastModifyTime_u() const {
				return cLastModifyTime_u;
		}


		/**
		 * 是否设置 预留扩展字段了
		 * 
		 * @param std::string:strReserve
		 *  
		 * 
		 */
		 bool  IsReserveSet() const{
				 return  cReserve_u != 0;
		}


		/**
		 * 获取uflag 预留扩展字段了
		 * 
		 * @param std::string:strReserve
		 *  
		 * 
		 */
		 const uint8_t   GetReserveUFlag() const{
				 return  cReserve_u;
		}


		/**
		 * 设置 预留扩展字段
		 * 
		 * @param std::string:strReserve
		 *  
		 * 
		 */
		 void  SetReserve( const std::string& sVal, uint8_t cUFlag=1){
				strReserve = sVal;
				cReserve_u = cUFlag;
		}


		/**
		 * 获取 预留扩展字段
		 * 
		 * @return strReserve value 类型为:std::string
		 * 
		 */
		 const std::string&  GetReserve() const {
				return strReserve;
		}


		/**
		 * 获取 预留扩展字段
		 * 
		 * @return strReserve value 类型为:std::string
		 * 
		 */
		 std::string&  GetReserve() {
				return strReserve;
		}


		/**
		 * 设置
		 * 
		 * 此字段的版本 >= 1
		 * @param uint8_t:cReserve_u
		 *  
		 * 
		 */
		 void  SetReserve_u( const uint8_t& sVal){
				cReserve_u = sVal;
		}


		/**
		 * 获取
		 * 
		 * @return cReserve_u value 类型为:uint8_t
		 * 
		 */
		 const uint8_t&  GetReserve_u() const {
				return cReserve_u;
		}

		virtual bool Serialize(CByteStreamNetwork& bs){
		
			uint32_t dwMyLen = 0;
			if(bs.isStoring()) //for write in buffer
			{
				//can not larger than 1 M.
				CByteStreamNetwork bsDummy(NULL, 1024 * 1024, false);
				//bsDummy for precheck the xo size...
				bsDummy.isStoring(true);
				Serialize_i(bsDummy);
				dwMyLen = bsDummy.getWrittenLength();
				bs & dwMyLen;
				Serialize_i(bs);
			}
			else
			{    //for read from buffer
				bs & dwMyLen;
				uint32_t dwReadedLen = bs.getReadLength();
				Serialize_i(bs);
				dwReadedLen = bs.getReadLength() - dwReadedLen;
				// dwReadedLen for the size of xo
				if( dwReadedLen > dwMyLen ){
					return false;
				}
				//go through the unwanted mem position...
				bs.goForward( dwMyLen - dwReadedLen );
			}

			return bs.isGood();
		}

		bool Serialize_i(CByteStreamNetwork& bsTmp){

			uint16_t dwVersionTmp = wVersion;
			bsTmp & dwVersionTmp; // 序列化 版本号  类型为uint16_t
			bsTmp & cVersion_u; // 序列化 类型为uint8_t
			bsTmp & dwRecordSysNo; // 序列化记录序号，ERP：gis系统同步数据时使用，区分不同记录 类型为uint32_t
			bsTmp & cRecordSysNo_u; // 序列化 类型为uint8_t
			bsTmp & dwShipType; // 序列化配送方式  类型为uint32_t
			bsTmp & cShipType_u; // 序列化 类型为uint8_t
			bsTmp & dwBranchSysNo; // 序列化分站号  类型为uint32_t
			bsTmp & cBranchSysNo_u; // 序列化 类型为uint8_t
			bsTmp & dwShipTypeLocusGbAreaid; // 序列化配送轨迹所属的国标城市地域ID 类型为uint32_t
			bsTmp & cShipTypeLocusGbAreaid_u; // 序列化 类型为uint8_t
			bsTmp & strShipTypeCoverLocus; // 序列化配送方式覆盖轨迹，轨迹数据组织形式如：x1,y1,x2,y2,x3,y3  类型为String
			bsTmp & cShipTypeCoverLocus_u; // 序列化 类型为uint8_t
			bsTmp & dwStatus; // 序列化 状态，0：有效，1：无效  类型为uint32_t
			bsTmp & cStatus_u; // 序列化 类型为uint8_t
			bsTmp & ddwCreateTime; // 序列化 创建时间 类型为uint64_t
			bsTmp & cCreateTime_u; // 序列化 类型为uint8_t
			bsTmp & ddwLastModifyTime; // 序列化 最近修改时间 类型为uint64_t
			bsTmp & cLastModifyTime_u; // 序列化 类型为uint8_t
			bsTmp & strReserve; // 序列化 预留扩展字段 类型为String
			bsTmp & cReserve_u; // 序列化 类型为uint8_t
			return bsTmp.isGood();
		}

		const char* GetLastErrMsg() const{
			return m_sLastErrMsg.c_str();
		}

		bool VerifyShipTypeAreaLocusPo(){

			if(!IsVersionSet()){
				m_sLastErrMsg = "Miss Param:version";
				return false;
			}

			if(!IsRecordSysNoSet()){
				m_sLastErrMsg = "Miss Param:recordSysNo";
				return false;
			}

			if(!IsShipTypeSet()){
				m_sLastErrMsg = "Miss Param:shipType";
				return false;
			}

			if(!IsBranchSysNoSet()){
				m_sLastErrMsg = "Miss Param:branchSysNo";
				return false;
			}

			if(!IsShipTypeLocusGbAreaidSet()){
				m_sLastErrMsg = "Miss Param:shipTypeLocusGbAreaid";
				return false;
			}

			if(!IsShipTypeCoverLocusSet()){
				m_sLastErrMsg = "Miss Param:shipTypeCoverLocus";
				return false;
			}

			if(!IsStatusSet()){
				m_sLastErrMsg = "Miss Param:status";
				return false;
			}

			if(!IsCreateTimeSet()){
				m_sLastErrMsg = "Miss Param:createTime";
				return false;
			}

			if(!IsLastModifyTimeSet()){
				m_sLastErrMsg = "Miss Param:lastModifyTime";
				return false;
			}

			if(!IsReserveSet()){
				m_sLastErrMsg = "Miss Param:reserve";
				return false;
			}
			return true;
		}

		void DumpData(std::ostream& oss) const{
		
			oss<<"[wVersion:"<<(int)wVersion<<"] ";
			oss<<"[cVersion_u:"<<(int)cVersion_u<<"] ";
			oss<<"[dwRecordSysNo:"<<dwRecordSysNo<<"] ";
			oss<<"[cRecordSysNo_u:"<<(int)cRecordSysNo_u<<"] ";
			oss<<"[dwShipType:"<<dwShipType<<"] ";
			oss<<"[cShipType_u:"<<(int)cShipType_u<<"] ";
			oss<<"[dwBranchSysNo:"<<dwBranchSysNo<<"] ";
			oss<<"[cBranchSysNo_u:"<<(int)cBranchSysNo_u<<"] ";
			oss<<"[dwShipTypeLocusGbAreaid:"<<dwShipTypeLocusGbAreaid<<"] ";
			oss<<"[cShipTypeLocusGbAreaid_u:"<<(int)cShipTypeLocusGbAreaid_u<<"] ";
			oss<<"[strShipTypeCoverLocus:"<<strShipTypeCoverLocus<<"] ";
			oss<<"[cShipTypeCoverLocus_u:"<<(int)cShipTypeCoverLocus_u<<"] ";
			oss<<"[dwStatus:"<<dwStatus<<"] ";
			oss<<"[cStatus_u:"<<(int)cStatus_u<<"] ";
			oss<<"[ddwCreateTime:"<<ddwCreateTime<<"] ";
			oss<<"[cCreateTime_u:"<<(int)cCreateTime_u<<"] ";
			oss<<"[ddwLastModifyTime:"<<ddwLastModifyTime<<"] ";
			oss<<"[cLastModifyTime_u:"<<(int)cLastModifyTime_u<<"] ";
			oss<<"[strReserve:"<<strReserve<<"] ";
			oss<<"[cReserve_u:"<<(int)cReserve_u<<"] ";
		
		}

		// codydeng提供,非常好的dump方法 ^-^  。。。。。
		template<typename T>
		T & DumpPlusData(T& oss){
			oss<<"wVersion:"<<wVersion;
			oss<<"cVersion_u:"<<cVersion_u;
			oss<<"dwRecordSysNo:"<<dwRecordSysNo;
			oss<<"cRecordSysNo_u:"<<cRecordSysNo_u;
			oss<<"dwShipType:"<<dwShipType;
			oss<<"cShipType_u:"<<cShipType_u;
			oss<<"dwBranchSysNo:"<<dwBranchSysNo;
			oss<<"cBranchSysNo_u:"<<cBranchSysNo_u;
			oss<<"dwShipTypeLocusGbAreaid:"<<dwShipTypeLocusGbAreaid;
			oss<<"cShipTypeLocusGbAreaid_u:"<<cShipTypeLocusGbAreaid_u;
			oss<<"strShipTypeCoverLocus:"<<strShipTypeCoverLocus;
			oss<<"cShipTypeCoverLocus_u:"<<cShipTypeCoverLocus_u;
			oss<<"dwStatus:"<<dwStatus;
			oss<<"cStatus_u:"<<cStatus_u;
			oss<<"ddwCreateTime:"<<ddwCreateTime;
			oss<<"cCreateTime_u:"<<cCreateTime_u;
			oss<<"ddwLastModifyTime:"<<ddwLastModifyTime;
			oss<<"cLastModifyTime_u:"<<cLastModifyTime_u;
			oss<<"strReserve:"<<strReserve;
			oss<<"cReserve_u:"<<cReserve_u;
			return oss;
		}

		// wileywang提供,树形dump方法 ^-^  。。。。。
		void DumpDataTree(std::ostream& os, int ident = 0)const {
			g_pprint(os, "wVersion", wVersion, ident);
			g_pprint(os, "cVersion_u", cVersion_u, ident);
			g_pprint(os, "dwRecordSysNo", dwRecordSysNo, ident);
			g_pprint(os, "cRecordSysNo_u", cRecordSysNo_u, ident);
			g_pprint(os, "dwShipType", dwShipType, ident);
			g_pprint(os, "cShipType_u", cShipType_u, ident);
			g_pprint(os, "dwBranchSysNo", dwBranchSysNo, ident);
			g_pprint(os, "cBranchSysNo_u", cBranchSysNo_u, ident);
			g_pprint(os, "dwShipTypeLocusGbAreaid", dwShipTypeLocusGbAreaid, ident);
			g_pprint(os, "cShipTypeLocusGbAreaid_u", cShipTypeLocusGbAreaid_u, ident);
			g_pprint(os, "strShipTypeCoverLocus", strShipTypeCoverLocus, ident);
			g_pprint(os, "cShipTypeCoverLocus_u", cShipTypeCoverLocus_u, ident);
			g_pprint(os, "dwStatus", dwStatus, ident);
			g_pprint(os, "cStatus_u", cStatus_u, ident);
			g_pprint(os, "ddwCreateTime", ddwCreateTime, ident);
			g_pprint(os, "cCreateTime_u", cCreateTime_u, ident);
			g_pprint(os, "ddwLastModifyTime", ddwLastModifyTime, ident);
			g_pprint(os, "cLastModifyTime_u", cLastModifyTime_u, ident);
			g_pprint(os, "strReserve", strReserve, ident);
			g_pprint(os, "cReserve_u", cReserve_u, ident);
		}

/**
 ********************以下信息是每个版本的字段********************
 */

};

}
}
}

#endif /* ERP_GIS_PO_CSHIPTYPEAREALOCUSPO_BY_AUTOGEN_V5_H */
